Typically, data in the form of files such as documents, image files, and audio/video/multimedia files is stored as a sequence of data bytes in a computer's local storage, for example, the hard drive of the computer. Storing data in a local storage has a few limitations. One of such limitations is that only a restricted volume of data can be stored because of the limited capacity of the storage. For example, most of the personal computers available in market have a local storage of 40 Gigabytes (GB) to 320 GB. Another limitation is that the local storage is neither secure nor reliable because data cannot be retrieved when the computer malfunctions or gets damaged. Also, if the computer is lost or stolen, data can be accessed by unauthorized users and can be misused. For example, confidential data such as personnel details stored in a laptop can be accessed by unauthorized users for criminal activities.
To overcome these limitations associated with the local storage, service providers enable users to store data at remote storage sites connected through networks. Mostly, these remote storage sites are utilized as seamless backups or synchronization devices to maintain copies of data present in the local storage of the computer. When a file is created by a user in the local storage, a copy of the file is automatically created at the remote storage site. Similarly, when the user modifies a file stored in the local storage, the same modification is automatically made to the copy of the file at the remote storage site. In this scenario, if a user intends to store a 400-GB data in the remote storage, he requires a local storage of 400 GB connected to his computer. Therefore, in this case, the user may be required to connect an external hard drive to his/her computer, or may be required to upgrade the local storage of his/her computer. This requires additional expenditure and hence is not an efficient way to store a large amount of data.
Another manner in which the remote storage sites are utilized is non-seamless. Users having an access to the remote storage sites manually upload and download data to and from the remote storage sites. In this scenario, only the downloaded data is stored in the local storage of the computer. Also, in this case, if the user intends to make modification to an already uploaded file, he/she has to manually download the file on the local storage and then make changes to it. Therefore, he/she has to upload the modified file on the remote storage site again. Also, in the case of remote storage sites, users have to continuously keep track of the free space available in the local storage of their computers as they need to delete files from the local storage to vacate space for files they intend to download. Thus, at every step, user's manual intervention is required making this process entirely non-seamless.
In light of the foregoing, it is desirable to have a system that enables users to seamlessly store data at a remote storage without maintaining a copy of the data at the local storage. Also, the system should not require the user to manually download a file on his/her local storage every time he/she wants to make changes to the file already on the remote storage.